package com.xsp.commonutils.utils;

import org.springframework.beans.factory.InitializingBean;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

@Component
//当项目启动后，因为Component会加载本类，实现InitializingBean之后，就会继续调用afterPropertiesSet方法
public class ConstantPropertiesUtils implements InitializingBean {

    //通过spring的Value属性，获取application.properties中的值，并且赋值给这里的字段
    @Value("${aliyun.oss.file.endpoint}")
    private String endpoint;

    @Value("${aliyun.oss.file.keyid}")
    private String keyid;

    @Value("${aliyun.oss.file.keysecret}")
    private String keysecret;

    @Value("${aliyun.oss.file.bucketname}")
    private String bucketname;

    //定义公开常量
    //可以通过ctrl + shift + U 大小写转换
    public static String END_POINT;
    public static String KEY_ID;
    public static String KEY_SECRET;
    public static String BUCKET_NAME;

    //通过这个方法，使得常量能够公开调用
    @Override
    public void afterPropertiesSet() throws Exception {
        END_POINT = endpoint;
        KEY_ID = keyid;
        KEY_SECRET = keysecret;
        BUCKET_NAME = bucketname;
    }
}
